// 使用Mock构建本地服务器输出数据结果
const Mock = require('mockjs')
const express = require('express')
const app = express()

// 根据传入的参数num生成num条模拟数据
function genertorList(num) {
  return Mock.mock({
    [`list|${num}`]: [{
      // 模拟ID，自增方式追加
      'id|+1': 1,
      // 模拟标题，中文字符串长度为15位到25位
      title: "@ctitle(15,25)",
      // 模拟图片索引，自然数从0到15
      image: "@natural(0,15)",
      // 模拟访问人数，自然数从0到99999
      reads: "@natural(0,999)",
      // 模拟新闻来源，中文字符串长度为3到10位
      from: "@ctitle(3,5)",
      // 模拟发布时间，时间格式为xxxx年xx月xx日
      date: "@date('yyyy-MM-dd')"
    }]
  })
}

// 允许跨域请求返回数据
app.all('*', function(req, res, next) {
  res.header('Access-Control-Allow-Origin','*');
  res.header('Access-Control-Allow-Methods','PUT,GET,POST,DELETE,OPTIONS');
  res.header('Access-Control-Allow-Headers','X-Requested-With');
  res.header('Access-Control-Allow-Headers','Content-Type');
  next()
})

// 截取路由并反馈数据
app.get("/data", function(req, res){
  const {num} = req.query
  return res.send(genertorList(num))
})

// 设置端口打印对应调用结果
const server = app.listen(4000, function(){
  console.log('本地mock服务启动，接口地址为：http://localhost:4000/data?num=请求列表数量')
})